
export function fun1() {
	// todo
}

function fun2(fun: () => void) {
	// todo123
	fun();
	// todo456
}

function fun3() {
	fun2(fun1);
	fun2(() => {
		// todo
	});
}

function fun4(fun: () => void) {
	setTimeout(() => {
		fun();
	}, 3000);
}
// async/await
function fun5() {
	return new Promise<void>((res) => {
		setTimeout(() => {
			res();
		}, 3000);
	});
}

async function fun6() {
	await fun5();
	// todo
}
